User experiences of hosted applications, such as collaboration applications or productivity applications, may be customized. User experience elements, such as menus, buttons, and application colors may be changed or extended through declarative means. In some examples, the user experience elements may be modified by deploying custom code.
When the user experience of the application is updated or upgraded, many changes may be incremental (e.g., a new feature may be added or changed, while leaving the surrounding application intact). Occasionally, the user experience of the application may change significantly, resulting in a change in the foundation upon which the customizations operate. In such scenarios, the customizations that were in place before the user experience was updated and/or was upgraded may no longer work.